package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.settlement.system.converter.DateFormatYmdHmConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * WP-退供差异
 * @author Ximi
 * @since 2020-10-19
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblWpRefundDifDetail extends BaseModel implements Serializable {


    /**
     * 供应商编码
     */
    @ExcelProperty(value = "供应商编码")
    @ApiModelProperty(value = "供应商编码")
    private String vendorNo;

    /**
     * 供应商名称
     */
    @ExcelProperty(value = "供应商名称")
    @ApiModelProperty(value = "供应商名称")
    private String vendorName;

    /**
     * 退供差异单号
     */
    @ExcelProperty(value = "退供差异单号")
    @ApiModelProperty(value = "退供差异单号")
    private String refundDifOrderNo;

    /**
     * 状态
     */
    @ExcelProperty(value = "状态")
    @ApiModelProperty(value = "状态")
    private String orderStatus;

    /**
     * 退供单号
     */
    @ExcelProperty(value = "退供单号")
    @ApiModelProperty(value = "退供单号")
    private String refundOrderNo;

    /**
     * PO编号/档期号
     */
    @ExcelProperty(value = "PO编号/档期号")
    @ApiModelProperty(value = "PO编号/档期号")
    private String poNo;

    /**
     * 发货类型
     */
    @ExcelProperty(value = "发货类型")
    @ApiModelProperty(value = "发货类型")
    private String deliveryType;

    /**
     * 订单新建时间
     */
    @ExcelProperty(value = "新建时间",converter = DateFormatYmdHmConvert.class)
    @ApiModelProperty(value = "新建时间",example = "2000-01-01 11:22:33")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderCreateTime;

    /**
     * 订单更新时间
     */
    @ExcelProperty(value = "更新时间",converter = DateFormatYmdHmConvert.class)
    @ApiModelProperty(value = "更新时间",example = "2000-01-01 11:22:33")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderUpdateTime;

    /**
     * 供应商联系人
     */
    @ExcelProperty(value = "供应商联系人")
    @ApiModelProperty(value = "供应商联系人")
    private String vendorContact;

    /**
     * 供应商联系电话
     */
    @ExcelProperty(value = "供应商联系电话")
    @ApiModelProperty(value = "供应商联系电话")
    private String vendorContactPhone;

    /**
     * 回采PO
     */
    @ExcelProperty(value = "回采PO")
    @ApiModelProperty(value = "回采PO")
    private String returnPoNo;

    public String getReturnPoNo() {
        return StringUtils.trim(returnPoNo);
    }

    public void setReturnPoNo(String returnPoNo) {
        this.returnPoNo = StringUtils.trim(returnPoNo);
    }

    /**
     * PO
     */
    @ExcelProperty(value = "PO")
    @ApiModelProperty(value = "PO")
    private String po;

    /**
     * 外箱是否完整
     */
    @ExcelProperty(value = "外箱是否完整")
    @ApiModelProperty(value = "外箱是否完整")
    private String boxComplete;

    /**
     * 箱号
     */
    @ExcelProperty(value = "箱号")
    @ApiModelProperty(value = "箱号")
    private String boxNo;

    /**
     * 条形码
     */
    @ExcelProperty(value = "条形码")
    @ApiModelProperty(value = "条形码")
    private String barCode;

    /**
     * 赔偿数
     */
    @ExcelProperty(value = "赔偿数")
    @ApiModelProperty(value = "赔偿数")
    private Integer compensationAmount;

    /**
     * 差异金额
     */
    @ExcelProperty(value = "差异金额")
    @ApiModelProperty(value = "差异金额")
    private Double difAmount;

    /**
     * 供应反馈差异情况
     */
    @ExcelProperty(value = "供应反馈差异情况")
    @ApiModelProperty(value = "供应反馈差异情况")
    private String supplyDifSituation;

    /**
     * 是否寄回
     */
    @ExcelProperty(value = "是否寄回")
    @ApiModelProperty(value = "是否寄回")
    private String isSendBack;

    /**
     * 退供关联SO
     */
    @ExcelProperty(value = "退供关联SO")
    @ApiModelProperty(value = "退供关联SO")
    private String refundSo;

    /**
     * 运单号
     */
    @ExcelProperty(value = "运单号")
    @ApiModelProperty(value = "运单号")
    private String waybillNumber;
}
